White background protection in SRGAN based super resolution

ABSTRACT

Systems and methods for processing images receive an input image. The systems and methods provide the input image to a first module to increase a resolution of the input image to produce an upscaled image. The systems and methods detect white pixels in the input image. The systems and methods generate a mask associated with the input image. The mask includes mask bits that are set to mark the white pixels in the input image. The systems and methods upscale the mask to produce an upscaled mask matching a resolution of the upscaled image. The systems and methods identify target pixels of the upscaled image that correspond to the set mask bits in the upscaled mask. The systems and methods modify the upscaled image to produce an output image by replacing target pixels of the upscaled image with a replacement pixel having greater whiteness. The systems and methods output the output image.

BACKGROUND

In image processing, super-resolution (SR) refers to a class oftechniques for increasing the resolution of an imaging system. In atypical scenario, a SR system receives an input image and upscales theinput image to a higher resolution output image. Prior to the upscaling,the details of the higher resolution output image are essentiallyunknown. The SR system operates by estimating the details of the higherresolution output image from characteristics of the input image.

There are various approaches for estimating a high-resolution (HR) imagefrom its low-resolution (LR) image. For example, with the nearestneighbor approach, the color of a newly-created pixel in the HR image isdetermined based on the color of a nearest pixel in the LR image. Withthe bilinear and bicubic approaches, colors for newly-created pixels inthe HR image are interpolated from colors of surrounding pixels in theLR image.

Other approaches estimate a HR image from its LR image using machinelearning. For example, some approaches utilize convolutional neuralnetworks (CNNs) to establish a mapping between LR image information andHR image information. CNNs are neural networks that include multiplelayers, and use convolution in at least one of the layers. Morespecifically, CNNs include convolution layers that perform a convolutionby sliding a filter, referred to as a convolution filter, over an input.As a simplified example, the input may be a 10×10 matrix of inputvalues, and the convolution filter may be a 3×3 matrix of filter values.At each slide position, the convolution layer performs a matrixmultiplication between the convolution filter and the portion of theinput identified by the slide position. The portion identified by theslide position is referred to as the receptive field. The resulting sumis then added to a feature map at a position corresponding to thereceptive field.

A Super-Resolution Generative Adversarial Network (SRGAN) is a machinelearning system that uses two competing neural networks in order togenerate synthetic SR images that appear to be real images. The twocompeting neural networks are referred to as a generator network and adiscriminator network. The generator network is a CNN that receives a LRimage as input and generates a HR image as output. The discriminatornetwork is a separate CNN that is trained to distinguish SR imagesgenerated by the generator network from real images. During a trainingprocess, the generator network and the discriminator network can beoptimized in an alternating manner, such that the generator networklearns to generate SR images that are very similar to real images and,as such, difficult for the discriminator network to distinguish fromreal images. After sufficient training, the generator network can beused for SR.

SUMMARY

An example method for processing images includes receiving an inputimage. The example method includes providing the input image as input toa first module implemented on a computer processing system andconfigured to increase a resolution of the input image to produce afirst upscaled image. The example method includes detecting, with thecomputer processing system, white pixels in the input image. The examplemethod includes generating, with the computer processing system, a maskassociated with the input image. The mask includes mask bits and one ormore of the mask bits are set to mark the white pixels in the inputimage. The example method includes upscaling, with the computerprocessing system, the mask to produce an upscaled mask matching aresolution of the first upscaled image. The example method includesidentifying, with the computer processing system, one or more targetpixels of the first upscaled image that correspond to the one or moreset mask bits in the upscaled mask. The example method includesmodifying, with the computer processing system, the first upscaled imageto produce an output image by replacing one or more of the target pixelsof the first upscaled image with a replacement pixel having greaterwhiteness. The example method includes outputting, by the computerprocessing system, the output image.

An example system for processing images includes one or more computerstorage devices configured to store a first module configured toincrease a resolution of an input image to produce a first upscaledimage. The example system includes one or more processors configured toexecute instructions. The instructions cause the one or more processorsto receive the input image. The instructions cause the one or moreprocessors to provide the input image as input to the first module toproduce the first upscaled image. The instructions cause the one or moreprocessors to detect white pixels in the input image. The instructionscause the one or more processors to generate a mask associated with theinput image. The mask includes mask bits and one or more of the maskbits are set to mark the white pixels in the input image. Theinstructions cause the one or more processors to upscale the mask toproduce an upscaled mask matching a resolution of the first upscaledimage. The instructions cause the one or more processors to identify oneor more target pixels of the first upscaled image that correspond to theone or more set mask bits in the upscaled mask. The instructions causethe one or more processors to modify the first upscaled image to producean output image by replacing one or more of the target pixels of thefirst upscaled image with a replacement pixel having greater whiteness.The instructions cause the one or more processors to output the outputimage.

One or more example non-transitory computer-readable storage media havecomputer-executable instructions stored thereon. When executed by one ormore processors, the computer-executable instructions cause the one ormore processors to receive an input image. The computer-executableinstructions cause the one or more processors to provide the input imageas input to a first module configured to increase a resolution of theinput image to produce a first upscaled image. The computer-executableinstructions cause the one or more processors to detect white pixels inthe input image. The computer-executable instructions cause the one ormore processors to generate a mask associated with the input image. Themask includes mask bits and one or more of the mask bits are set to markthe white pixels in the input image. The computer-executableinstructions cause the one or more processors to upscale the mask toproduce an upscaled mask matching a resolution of the first upscaledimage. The computer-executable instructions cause the one or moreprocessors to identify one or more target pixels of the first upscaledimage that correspond to the one or more set mask bits in the upscaledmask. The computer-executable instructions cause the one or moreprocessors to modify the first upscaled image to produce an output imageby replacing one or more of the target pixels of the first upscaledimage with a replacement pixel having greater whiteness. Thecomputer-executable instructions cause the one or more processors tooutput the output image.

The features, functions, and advantages that have been discussed can beachieved independently in various embodiments or may be combined in yetother embodiments further details of which can be seen with reference tothe following description and figures.

BRIEF DESCRIPTION OF THE FIGURES

The novel features believed characteristic of the illustrativeembodiments are set forth in the appended claims. The illustrativeembodiments, however, as well as a preferred mode of use, furtherobjectives and descriptions thereof, will best be understood byreference to the following detailed description of an illustrativeembodiment of the present disclosure when read in conjunction with theaccompanying figures, wherein:

FIG. 1 illustrates an example input image for a print job.

FIG. 2 illustrates an example image produced by upscaling the inputimage of FIG. 1 by a Super-Resolution Generative Adversarial Network(SRGAN).

FIG. 3 illustrates an example image produced by upscaling the inputimage of FIG. 1 with nearest neighbor interpolation.

FIG. 4 illustrates an example system for upscaling an input image, whileprotecting white areas in the input image.

FIG. 5 illustrates an example image produced by applying a mask basedonly on pure white pixels of the input image of FIG. 1 to the upscaledimage of FIG. 2 produced by the SRGAN.

FIG. 6A illustrates another example system for processing an inputimage, while protecting white areas in the input image.

FIG. 6B illustrates a further example system for processing an inputimage, while protecting white areas in the input image.

FIG. 7 illustrates an example image produced by applying a mask based onpure white pixels and near white pixels of the input image of FIG. 1 tothe upscaled image of FIG. 2 produced by the SRGAN.

FIG. 8 illustrates an example computing system for processing an inputimage.

DETAILED DESCRIPTION

FIG. 1 illustrates an example input image 110 (low-resolution (LR)image) for a print job. Among other possible processing steps, the printjob may upscale the input image 110 to a higher resolution(high-resolution (HR) image). The input image 110 includes: (i)non-white components 112 defined by an arrangement of black or coloredtext, lines, and shapes, and (ii) white areas 114 in the background. Thewhite areas 114 may include areas of pure white and/or near white.

A Super-Resolution Generative Adversarial Network (SRGAN) can beemployed to upscale the input image 110, by a multiple of four (4X) forinstance, to produce an example upscaled image 210 as shown in FIG. 2.The upscaled image 210 includes: (i) non-white components 212 thatcorrespond to the non-white components 112 of the input image 110, and(ii) white areas 214 that correspond to the white areas 114 of the inputimage 110.

Alternatively, nearest neighbor interpolation can be employed to upscalethe input image 110, by 4X for instance, to output an upscaled image 310as shown in FIG. 3. The upscaled image 310 includes: (i) non-whitecomponents 312 that correspond to the non-white components 112 of theinput image 110, and (ii) white areas 314 that correspond to the whiteareas 114 of the input image 110.

A comparison of FIGS. 1-3 reveals that the non-white components 212(e.g., text and lines) of the upscaled image 210 (SRGAN) reproduce thenon-white components 112 of the input image 110 with better imagequality than the non-white components 312 of the upscaled image 310(nearest neighbor interpolation). However, the white areas 314 of theupscaled image 310 (nearest neighbor interpolation) provide a betterreproduction of the white areas 114 of the input image 110 than thewhite areas 214 of the upscaled image 210 (SRGAN). In particular, thewhite areas 214 produced by the SRGAN appear more greyish than the whiteareas 314 produced by nearest neighbor interpolation. In terms of imagequality, a SRGAN has been found to be more effective at upscaling goodquality, natural images (with richer local covariance structure), butless effective at upscaling artificial images with large white areas inthe background. Although it may be desirable to upscale images with aSRGAN to obtain better image quality for non-white components, there isa need to improve the white areas in images upscaled with the SRGAN. Inparticular, there is a need for approaches that can upscale artificialimages as well as natural images.

FIG. 4 illustrates an example system 400 for processing an input image 2(e.g., for a print job). The system 400 includes a first upscalingmodule 412 that receives the input image 2 and increases a resolution ofthe input image 2 to produce a first upscaled image 12. In particular,the first upscaling module 412 increases the resolution of the inputimage 2 by employing a SRGAN. By employing the SRGAN, however, the firstupscaled image 12 might not effectively reproduce white areas of theinput image 2 as described above.

The system 400 also includes a mask module 432 that generates a mask 32associated with the input image 2. In particular, the mask module 432detects pure white pixels 2 a in the input image 2 and generates themask 32 based on the detected pure white pixels 2 a. For instance, themask module 432 detects the pure white pixels 2 a in the input image 2by detecting the pixels with a red-green-blue (RGB) value of (255, 255,255). The mask 32 includes mask bits 32 a and one or more of the maskbits 32 a are set to mark the pure white pixels 2 a detected in theinput image 2.

Furthermore, the system 400 includes a mask upscaling module 442 thatupscales the mask 32 to produce an upscaled mask 42 matching aresolution of the first upscaled image 12. For instance, the firstupscaling module 412 may upscale the input image 2 by 4X, and the maskupscaling module 442 may correspondingly upscale the mask 32 by 4X.Upscaling the mask 32 may involve replicating the mask bits 32 a of themask 32 along two perpendicular axes (e.g., x-direction and y-direction)to match the resolution of the first upscaled image 12. The upscaledmask 42 includes mask bits 42 a that are set to mark the pure whitepixels 2 a detected in the input image 2.

The system 400 also includes an output module 452 that receives thefirst upscaled image 12 from the first upscaling module 412 and theupscaled mask 42 from the mask upscaling module 442. Evaluating the oneor more set mask bits 42 a of the upscaled mask 42, the output module452 identifies one or more target pixels 12 a of the first upscaledimage 12 that correspond to the pure white pixels 2 a detected in theinput image 2. As described above, because the target pixels 12 a areproduced by the SRGAN, the target pixels 12 a might not effectivelyreproduce the pure white pixels 2 a of the input image 2. Thus, theoutput module 452 modifies the first upscaled image 12 to produce anoutput image 52 by replacing the target pixels 12 a with replacementpixels 52 a having greater whiteness. In the system 400, the replacementpixel 52 a for each of the target pixels 12 a has the RGB value of (255,255, 255). In other words, the target pixels 12 a in the first upscaledimage 12 are replaced with pure white pixels 52 a to effectivelyreproduce pure white pixels 2 a of the input image 2. The system 400protects the pure white pixels 2 a of the input image 2.

In some cases, however, some of the pixels of an input image may be nearwhite rather than pure white (e.g., RGB value of (255, 255, 255)). Forinstance, scanned artificial images typically include larger areas ofnear white pixels instead of pure white pixels. A mask based only onpure white pixels of the input image does not protect near white pixelsof the input image. FIG. 5 illustrates an upscaled image 510 produced byapplying a mask to the upscaled image 210 produced by the SRGAN, wherethe mask bits only mark pure white pixels of the input image 110. Theupscaled image 510 includes white areas 514 with pure white pixels basedon the mask while near white pixels reproduced by the SRGAN remain. Thenear white pixels reproduced by the SRGAN are more greyish relative tocorresponding near white pixels of the input image 110. Furthermore, thedifferences between neighboring pure white pixels from the mask and nearwhite pixels produced by the SRGAN are exaggerated, creating artifacts514 a in the upscaled image 510.

FIG. 6A illustrates another example system 600 a for processing an inputimage 4 (e.g., for a print job). The system 600 a includes a firstupscaling module 614 that receives the input image 4 and increases aresolution of the input image 4 to produce a first upscaled image 14. Inparticular, the first upscaling module 614 increases the resolution ofthe input image 4 by employing a SRGAN. By employing the SRGAN, however,the first upscaled image 14 might not effectively reproduce white areas(pure white and near white) of the input image 4 as described above.

Additionally, the system 600 a includes a second upscaling module 624that also receives the input image 4 and increases a resolution of theinput image 4 to produce a second upscaled image 24 matching theresolution of the first upscaled image 14. In particular, the secondupscaling module 624 increases the resolution of the input image 4 byusing nearest neighbor interpolation or bilinear interpolation asdescribed above, as an alternative to the SRGAN. In contrast to thefirst upscaled image 14, the second upscaled image 24 includes whitepixels 24 a that reproduce white areas (pure white and near white) ofthe input image 4 more effectively.

The system 600 a also includes a mask module 634 that generates a mask34 associated with the input image 4. In particular, the mask module 634detects pure white or near-white pixels 4 a in the input image 4 andgenerates the mask 34 based on the detected pure white pixels and nearwhite pixels 4 a. For instance, the mask module 634 detects the purewhite pixels and the near white pixels 4 a in the input image 4 bydetecting the pixels in the input image 4 with a RGB value thatsatisfies (e.g., is below) a threshold for near white. As such, the mask34 marks the pure white pixels and the near white pixels 4 a from theinput image 4. For instance, the mask 34 may include mask bits 34 a andone or more of the mask bits 34 a are set to mark the pure white pixelsand the near white pixels 4 a detected in the input image 4.

Furthermore, the system 600 a includes a mask upscaling module 644 thatupscales the mask 34 to produce an upscaled mask 44 matching aresolution of the first upscaled image 14. For instance, the firstupscaling module 614 may upscale the input image 4 by 4X, and the maskupscaling module 644 may correspondingly upscale the mask 34 by 4X.Upscaling the mask 34 may involve replicating the mask bits 34 a of themask 34 along two perpendicular axes (e.g., x-direction and y-direction)to match the resolution of the first upscaled image 14. The upscaledmask 44 includes mask bits 44 a that are set to mark the pure whitepixels and the near white pixels 4 a detected in the input image 4.

The system 600 a includes an output module 654 a, which may be amultiplexer that receives the first upscaled image 14 from the firstupscaling module 614, the second upscaled image 24 from the secondupscaling module 624, and the upscaled mask 44 from the mask upscalingmodule 644. Evaluating the one or more set mask bits 44 a of theupscaled mask 44, the output module 654 a identifies one or more targetpixels 14 a of the first upscaled image 14 that correspond to the one ormore set mask bits 34 a in the upscaled mask 34. The output module 654 amodifies the first upscaled image 14 to produce an output image 54 a byreplacing one or more of the target pixels 14 a of the first upscaledimage 14 with a replacement pixel. In the system 600 a, the outputmodule 654 a replaces each target pixel 14 a of the first upscaled image14 with the corresponding white pixel 24 a of the second upscaled image24. In other words, the white pixels 24 a of the second upscaled image24 provide replacement pixels that reproduce the pure white pixels ornear white pixels of the input image 4 more effectively. The system 600a protects the pure white pixels and near white pixels 4 a of the inputimage 4.

FIG. 7 illustrates an upscaled image 710 where a mask is employed toprotect both the pure white pixels and the near white pixels of theinput image 110 shown in FIG. 1, e.g., according to the system 600 a.Based on a mask marking the pure white pixels and the near white pixelsof the input image 110, the upscaled image 710 includes white areas 714with pixels from the upscaled image 310 (nearest neighbor interpolation)and non-white components 712 with pixels from the upscaled image 210(SRGAN). As shown in FIG. 7, the white areas 714 do not have theartifacts 514 a of the white areas 514 shown in FIG. 5.

FIG. 6B illustrates an alternative example system 600 b for processingan input image 4 (e.g., for a print job). The system 600 a protects thepure white pixels and near white pixels 4 a of the input image 4.Aspects of the system 600 b are similar to the system 600 a. The system600 b includes the first upscaling module 614 which receives the inputimage 4 and employs a SRGAN to increase a resolution of the input image4 to produce a first upscaled image 14. The system 600 b includes thesecond upscaling module 624 that also receives the input image 4 andincreases a resolution of the input image 4 to produce a second upscaledimage 24 matching the resolution of the first upscaled image 14. Forinstance, the second upscaling module 624 may employ nearest neighborinterpolation or bilinear interpolation, as an alternative to the SRGAN.The system 600 b also includes a mask module 634 that generates the mask34 based on the detected pure white pixels and the detected near whitepixels 4 a. For instance, the mask module 634 detects the pure whitepixels and the near white pixels 4 a in the input image 4 by detectingthe pixels in the input image 4 with a RGB value that satisfies (e.g.,is below) a threshold for near white. Furthermore, the system 600 bincludes the mask upscaling module 644 which upscales the mask 34 toproduce an upscaled mask 44 matching a resolution of the first upscaledimage 14. The upscaled mask 44 includes mask bits 44 a that are set tomark the pure white pixels and the near white pixels 4 a detected in theinput image 4.

The system 600 b includes an output module 654 b, which may be amultiplexer that receives the first upscaled image 14 from the firstupscaling module 614, the second upscaled image 24 from the secondupscaling module 624, and the upscaled mask 44 from the mask upscalingmodule 644. Evaluating the one or more set mask bits 44 a of theupscaled mask 44, the output module 654 b identifies one or more targetpixels 14 a of the first upscaled image 14 that correspond to the one ormore set mask bits 34 a in the upscaled mask 34. The output module 654modifies the first upscaled image 14 to produce an output image 54 byreplacing one or more of the target pixels 14 a of the first upscaledimage 14 with a replacement pixel. Unlike the output module 654 a of thesystem 600 a, the output module 654 b determines, for each of the targetpixels 14 a of the first upscaled image 14, whether a correspondingpixel 24 a of the second upscaled image 24 has greater whiteness thanthe target pixel 14 a of the first upscaled image 14. Responsive todetermining that the corresponding pixel 24 a of the second upscaledimage 24 has greater whiteness than the target pixel 14 a of the firstupscaled image 14, the output module 654 b replaces the target pixel 14a of the first upscaled image 14 with the corresponding pixel 24 a ofthe second upscaled image 24.

In general, the output modules 654 a, b select pixels from the firstupscaled image 14 or the second upscaled image 24 based on the mask bits34 a in the upscaled mask 34 marking the pure white pixels and the nearwhite pixels 4 from the input image 4. If the first upscaled image 14includes non-white components of higher image quality but the secondupscaled image 24 includes pure white or near white areas of moreacceptable quality, the output modules 654 a, b can replace the targetpixels 14 a in the first upscaled image 14 with white pixels 24 a fromthe second upscaled image 24. For instance, the output modules 654 a, bselect white pixels produced by nearest neighbor interpolation overcorresponding pixels produced by the SRGAN. Not only are the pure whitepixels of the input image 4 protected, but any near white pixel with avalue satisfying the threshold is also protected.

The modules as illustrated in the figures may be stored on one or morecomputer storage devices and implemented on a computer processingsystem. For instance, the modules may be implemented ascomputer-executable instructions stored on one or more non-transitorycomputer-readable storage media and executable by one or moreprocessors. In general, any aspect of the systems and methods describedherein may be achieved by one or more processors executingcomputer-executable instructions stored on one or more non-transitorycomputer-readable storage media.

For instance, as shown in an example computing system 800 illustrated inFIG. 8, one or more non-transitory computer-readable storage media 802 bcan store instructions 810 that are executable to cause one or moreprocessors 802 a to: receive an input image in an act 812; provide theinput image as input to a first module configured to increase aresolution of the input image to produce a first upscaled image in anact 814; detect white pixels in the input image in an act 816; generatea mask associated with the input image in an act 818, wherein the maskincludes mask bits and one or more of the mask bits are set to mark thewhite pixels in the input image; upscale the mask to produce an upscaledmask matching a resolution of the first upscaled image in an act 820;identify one or more target pixels of the first upscaled image thatcorrespond to the one or more set mask bits in the upscaled mask in anact 822; modify the first upscaled image to produce an output image byreplacing one or more of the target pixels of the first upscaled imagewith a replacement pixel having greater whiteness in an act 824; andoutput the output image in an act 826.

The computing system 800 may be implemented as a mobile phone, tabletcomputer, wearable computer, desktop computer, laptop computer, smartdevice, or the like. The computing system 800 may include the one ormore processors 802 a, one or more computer storage devices 802 b,including one or more non-transitory computer-readable storage media, anetwork interface 802 c, and input/output devices 802 d, all of whichmay be coupled by a system bus or a similar mechanism. The one or moreprocessors 804 a may include one or more central processing units(CPUs), such as one or more general purpose processors and/or one ormore dedicated processors (e.g., application specific integratedcircuits also known as ASICs or digital signal processors also known asDSPs, etc.).

The one or more computer storage devices 802 b may include volatileand/or non-volatile data storage and may be integrated in whole or inpart with the one or more processors 802 a. In general, the one or morecomputer storage devices 802 b may store program instructions,executable by the one or more processors 802 a, and data that aremanipulated by these instructions to carry out the various methods,processes, or functions described herein. Alternatively, these methods,processes, or functions can be defined by hardware, firmware, and/or anycombination of hardware, firmware and software. Therefore, one or morecomputer storage devices 802 b may include a tangible, non-transitorycomputer-readable medium, having stored thereon program instructionsthat, upon execution by one or more processors, cause computing system800 to carry out any of the methods, processes, or functions disclosedin this specification or the accompanying drawings.

The network interface 802 c may be employed to receive input, such asthe input images described above, or to provide output, such as theoutput images described above. The network interface 802 c may take theform of a wire line connection, such as an Ethernet, Token Ring, orT-carrier connection. The network interface 802 c may alternatively takethe form of a wireless connection, such as WiFi, BLUETOOTH®, or awide-area wireless connection. However, other forms of physical layerconnections and other types of standard or proprietary communicationprotocols may be used over network interface 802 c. Furthermore, networkinterface 802 c may comprise multiple physical communication interfaces.Additionally, the computing system 800 may support remote access fromanother device, via the network interface 802 c or via anotherinterface, such as an RS-132 or Universal Serial Bus (USB) port.

The input/output devices 802 d may facilitate user interaction with thecomputing system 800. The input/output devices 802 d may includemultiple types of input devices, such as a keyboard, a mouse, a touchscreen, a microphone and/or any other device that is capable ofreceiving input from a user. Similarly, the input/output function 802 dmay include multiple types of output devices, such as a printing device,a display, one or more light emitting diodes (LEDs), speaker, or anyother device that is capable of providing output discernible to a user.For instance, the printing device can print the output image.Additionally or alternatively, the display device can display the outputimage.

It should be understood that the examples of a computing device areprovided for illustrative purposes. Further, in addition to and/oralternatively to the examples above, other combinations and/or subcombinations of a printer, computer, and server may also exist, amongstother possibilities, without departing from the scope of the embodimentsherein.

The description of the different advantageous arrangements has beenpresented for purposes of illustration and description, and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art. Further, different advantageousembodiments may provide different advantages as compared to otheradvantageous embodiments. The embodiment or embodiments selected arechosen and described in order to best explain the principles of theembodiments, the practical application, and to enable others of ordinaryskill in the art to understand the disclosure for various embodimentswith various modifications as are suited to the particular usecontemplated.

What is claimed is:
 1. A method for processing images, comprising:receiving an input image; providing the input image as input to a firstmodule implemented on a computer processing system and configured toincrease a resolution of the input image to produce a first upscaledimage; detecting, with the computer processing system, white pixels inthe input image; generating, with the computer processing system, a maskassociated with the input image, wherein the mask includes mask bits andone or more of the mask bits are set to mark the white pixels in theinput image; upscaling, with the computer processing system, the mask toproduce an upscaled mask matching a resolution of the first upscaledimage; identifying, with the computer processing system, one or moretarget pixels of the first upscaled image that correspond to the one ormore set mask bits in the upscaled mask; modifying, with the computerprocessing system, the first upscaled image to produce an output imageby replacing one or more of the target pixels of the first upscaledimage with a replacement pixel having greater whiteness; and outputting,by the computer processing system, the output image.
 2. The method ofclaim 1, further comprising: providing the input image as input to asecond module implemented on the computer processing system andconfigured to increase a resolution of the input image to produce asecond upscaled image matching the resolution of the first upscaledimage, wherein replacing one or more of the target pixels of the firstupscaled image includes replacing each of the target pixels of the firstupscaled image with a corresponding pixel of the second upscaled imagehaving greater whiteness.
 3. The method according to claim 2, whereinthe second module increases the resolution of the input image vianearest neighbor interpolation or bilinear interpolation.
 4. The methodof claim 1, further comprising: providing the input image as input to asecond module implemented on the computer processing system andconfigured to increase a resolution of the input image to produce asecond upscaled image matching the resolution of the first upscaledimage, wherein replacing one or more of the target pixels of the firstupscaled image includes, for each of the target pixels of the firstupscaled image: determining whether a corresponding pixel of the secondupscaled image has greater whiteness than the target pixel of the firstupscaled image; and responsive to determining that the correspondingpixel of the second upscaled image has greater whiteness than the targetpixel of the first upscaled image, replacing the target pixel of thefirst upscaled image with the corresponding pixel of the second upscaledimage.
 5. The method according to claim 4, wherein the second moduleincreases the resolution of the input image via nearest neighborinterpolation or bilinear interpolation.
 6. The method according toclaim 1, wherein detecting white pixels in the input image includesdetecting pixels in the input image with a (red, green, blue) (RGB)value that satisfies a threshold.
 7. The method of claim 1, whereindetecting white pixels in the input image includes detecting pixels inthe input image with a red-green-blue (RGB) value of (255, 255, 255),and the replacement pixel for each of the target pixels of the firstupscaled image has the RGB value of (255, 255, 255).
 8. The method ofclaim 1, wherein the first module increases the resolution of the inputimage via a Super-Resolution Generative Adversarial Network (SRGAN). 9.The method of claim 1, wherein upscaling the mask includes replicatingthe mask bits of the mask along two perpendicular axes to match theresolution of the first upscaled image.
 10. A system for processingimages, the system comprising: one or more computer storage devicesconfigured to store a first module configured to increase a resolutionof an input image to produce a first upscaled image; and one or moreprocessors configured to execute instructions, the instructions causingthe one or more processors to: receive the input image; provide theinput image as input to the first module to produce the first upscaledimage; detect white pixels in the input image; generate a maskassociated with the input image, wherein the mask includes mask bits andone or more of the mask bits are set to mark the white pixels in theinput image; upscale the mask to produce an upscaled mask matching aresolution of the first upscaled image; identify one or more targetpixels of the first upscaled image that correspond to the one or moreset mask bits in the upscaled mask; modify the first upscaled image toproduce an output image by replacing one or more of the target pixels ofthe first upscaled image with a replacement pixel having greaterwhiteness; and output the output image.
 11. The system of claim 10,wherein the one or more computer storage devices are further configuredto store a second module configured to increase a resolution of theinput image to produce a second upscaled image, the instructions furthercause the one or more processors to provide the input image as input tothe second module to produce the second upscaled image matching theresolution of the first upscaled image, and replacing one or more of thetarget pixels of the first upscaled image includes replacing each of thetarget pixels of the first upscaled image with a corresponding pixel ofthe second upscaled image.
 12. The system of claim 10, wherein the oneor more computer storage devices are further configured to store asecond module configured to increase a resolution of the input image toproduce a second upscaled image, the instructions further cause the oneor more processors to provide the input image as input to the secondmodule to produce the second upscaled image matching the resolution ofthe first upscaled image, and replacing one or more of the target pixelsof the first upscaled image includes, for each of the target pixels ofthe first upscaled image: determining whether a corresponding pixel ofthe second upscaled image has greater whiteness than the target pixel ofthe first upscaled image; and responsive to determining that thecorresponding pixel of the second upscaled image has greater whitenessthan the target pixel of the first upscaled image, replacing the targetpixel of the first upscaled image with the corresponding pixel of thesecond upscaled image.
 13. The system of claim 10, wherein theinstructions cause the one or more processors to detect white pixels inthe input image by detecting pixels in the input image with a (red,green, blue) (RGB) value that satisfies a threshold.
 14. The system ofclaim 10, wherein the instructions cause the one or more processors todetect white pixels in the input image by detecting pixels in the inputimage with a red-green-blue (RGB) value of (255, 255, 255), and thereplacement pixel for each of the target pixels of the first upscaledimage has the RGB value of (255, 255, 255).
 15. The system of claim 10,wherein the first module increases the resolution of the input image viaa Super-Resolution Generative Adversarial Network (SRGAN).
 16. One ormore non-transitory computer-readable storage media, havingcomputer-executable instructions stored thereon, wherein when executedby one or more processors, the computer-executable instructions causethe one or more processors to: receive an input image; provide the inputimage as input to a first module configured to increase a resolution ofthe input image to produce a first upscaled image; detect white pixelsin the input image; generate a mask associated with the input image,wherein the mask includes mask bits and one or more of the mask bits areset to mark the white pixels in the input image; upscale the mask toproduce an upscaled mask matching a resolution of the first upscaledimage; identify one or more target pixels of the first upscaled imagethat correspond to the one or more set mask bits in the upscaled mask;modify the first upscaled image to produce an output image by replacingone or more of the target pixels of the first upscaled image with areplacement pixel having greater whiteness; and output the output image.17. The one or more non-transitory computer-readable storage media ofclaim 16, wherein the computer-executable instructions further cause theone or more processors to: provide the input image as input to a secondmodule configured to increase a resolution of the input image to producea second upscaled image matching the resolution of the first upscaledimage, wherein replacing one or more of the target pixels of the firstupscaled image includes replacing each of the target pixels of the firstupscaled image with a corresponding pixel of the second upscaled image.18. The one or more non-transitory computer-readable storage media ofclaim 16, wherein the computer-executable instructions further cause theone or more processors to: provide the input image as input to a secondmodule configured to increase a resolution of the input image to producea second upscaled image matching the resolution of the first upscaledimage, wherein replacing one or more of the target pixels of the firstupscaled image includes, for each of the target pixels of the firstupscaled image: determining whether a corresponding pixel of the secondupscaled image has greater whiteness than the target pixel of the firstupscaled image; and responsive to determining that the correspondingpixel of the second upscaled image has greater whiteness than the targetpixel of the first upscaled image, replacing the target pixel of thefirst upscaled image with the corresponding pixel of the second upscaledimage.
 19. The one or more non-transitory computer-readable storagemedia of claim 16, wherein the computer-executable instructions causethe one or more processors to detect white pixels in the input image bydetecting pixels in the input image with a (red, green, blue) (RGB)value that satisfies a threshold.
 20. The one or more non-transitorycomputer-readable storage media of claim 16, wherein thecomputer-executable instructions cause the one or more processors todetect white pixels in the input image by detecting pixels in the inputimage with a red-green-blue (RGB) value of (255, 255, 255), and thereplacement pixel for each of the target pixels of the first upscaledimage has the RGB value of (255, 255, 255).